// 定义一个函数来将16进制颜色转为RGB数组
function hexToRgb(hex) {
  const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
  return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : null
}

// 定义一个函数来将RGB颜色值增加一定百分比的亮度（假设是10%）
function lightenRgb(rgb, percent) {
  // 将RGB值转换为0-1范围内的浮点数
  const [r, g, b] = rgb.map((v) => v / 255)

  // 计算亮度增加后的RGB值（此处仅简单线性增加亮度，实际可能需要转换到HSL并操作亮度分量）
  const increase = percent / 100
  const newR = Math.min(1, r + increase)
  const newG = Math.min(1, g + increase)
  const newB = Math.min(1, b + increase)

  // 转换回0-255范围内的整数
  return [Math.round(newR * 255), Math.round(newG * 255), Math.round(newB * 255)]
}

// 定义一个函数来将RGB颜色数组转回16进制颜色代码
function rgbToHex(rgb) {
  return `#${rgb.map((v) => v.toString(16).padStart(2, '0')).join('')}`
}

function lightenHex(hex, percent) {
  let rgbValue = hexToRgb(hex)
  rgbValue = lightenRgb(rgbValue, percent)
  return rgbToHex(rgbValue)
}

export { lightenHex }
// console.log(lightenHex('#333333',15))
// // 示例：将"#333333"这个16进制颜色调亮10%
// const inputHexColor = "#333333";
// const rgbColor = hexToRgb(inputHexColor);
// const lightenedRgbColor = lightenRgb(rgbColor, 10);
// const outputHexColor = rgbToHex(lightenedRgbColor);

// console.log(outputHexColor); // 输出更亮的16进制颜色代码
